package ru.bragnikita.utils.logexplorer.logic;

import ru.bragnikita.utils.logexplorer.logic.mock.FileSystemModificationException;
import ru.bragnikita.utils.logexplorer.model.FileWithContent;
import ru.bragnikita.utils.logexplorer.model.FilesSet;
import ru.bragnikita.utils.logexplorer.model.FilterRequest;

import java.io.InputStream;

/**
 * @author Nikita.Brazhnikov
 */
public interface FileSystemInterface {

	FilesSet getFilesSet(FilterRequest request) throws FileDownloadException;

	FileWithContent getFileContent(String absolutePath) throws FileDownloadException;

	void uploadFile(String directory, String filename, InputStream content) throws FileSystemModificationException;

	int deleteFiles(Iterable<String> pathToDelete) throws FileSystemModificationException;

	void saveFileContent(String filePath, InputStream content) throws FileSystemModificationException;
}
